package com.hrt.iceberg

import org.apache.spark.sql.SparkSession
/**
  * 使用Hadoop Catalog管理iceberg表
  */
object SparkOperatorIcebergWithHadoopCatalog {
  def main(args: Array[String]): Unit = {
    val spark: SparkSession = SparkSession.builder().master("local").appName("SparkOperateIceberg")
      .config("iceberg.engine.hive.enabled", "true")
      //指定hadoop catalog，catalog名称为hadoop_prod
      .config("spark.sql.catalog.hadoop_prod", "org.apache.iceberg.spark.SparkCatalog")
      .config("spark.sql.catalog.hadoop_prod.type", "hadoop")
      .config("spark.sql.catalog.hadoop_prod.warehouse", "hdfs://mycluster/sparkoperateiceberg")
      .getOrCreate()

      //创建表 ，hadoop_prod：指定catalog名称。default:指定库名称。test：创建的iceberg表名。
      spark.sql(
        """
          | create table if not exists hadoop_prod.default.test(id int,name string,age int) using iceberg
        """.stripMargin)

      //第一次插入数据
      spark.sql(
        """
          |insert into hadoop_prod.default.test values (1,"zs",18),(2,"ls",19),(3,"ww",20)
        """.stripMargin)

    //第二次插入数据
    //    spark.sql(
    //      """
    //        |insert into hadoop_prod.default.test values (4,"ml",21),(5,"tq",22),(6,"gb",23)
    //      """.stripMargin)

    //查询数据
//    spark.sql(
//      """
//        |select * from hadoop_prod.default.test
//      """.stripMargin).show()

    //删除表
//    spark.sql(
//      """
//        |drop table hadoop_prod.default.test
//      """.stripMargin)

  }
}
